home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 143 / Gekkan Dennou Club - 2000.4 Vol. 143 (Japan).7z / Gekkan Dennou Club - 2000.4 Vol. 143 (Japan).bin / imelo / ttl2fon.c < prev    next >
C/C++ Source or Header  |  2000-03-06  |  1KB  |  73 lines

  1. /*
  2.     ttlから、フォント用(16×16)へ
  3. */
  4.  
  5. #include    <stdio.h>
  6.  
  7. #define    HEADSIZE    (64+4)        //TTLのヘッダサイズ
  8. #define    FONTSIZE    (16)        //FONTのドット数
  9.  
  10. unsigned char    ibuf[768*512/8+68];
  11. unsigned char    obuf[768*512/8];
  12. char    inName[256],outName[256];
  13. FILE    *ifp,*ofp;
  14.  
  15.  
  16. int    main(argc,argv)
  17. int    argc;
  18. char    *argv[];
  19. {
  20.     int    flen;
  21.     short    wi,he,    wib,heb;
  22.     short    mx,my,cn;
  23.     short    x,y,l;
  24.     unsigned char    *d;
  25.     int    pos;
  26.     
  27.     if( argc!=3 ){
  28.         printf("TTLからFONTデータ配列に変更します\n");
  29.         printf("@>ttl2fon infile.ttl outfile.fon \n");
  30.         goto quick_exit;
  31.     }
  32.     
  33.     ifp=fopen(argv[1],"rb");
  34.     ofp=fopen(argv[2],"wb");
  35.     if( ifp==NULL ){
  36.         printf("入力ファイル%sが見つかりません\n",argv[1]);
  37.         goto quick_exit;
  38.     }
  39.     if( ofp==NULL ){
  40.         printf("出力ファイル%sが書き込めません\n",argv[2]);
  41.         goto quick_exit;
  42.     }
  43.     
  44.     flen=filelength(fileno(ifp));
  45.  
  46.     fread(ibuf,sizeof(unsigned char),flen,ifp);
  47.     wi=*(short *)&ibuf[0x40];
  48.     he=*(short *)&ibuf[0x42];
  49.     wib=wi/8;    if( (wi%8)!=0 )wib++;    mx=wib/2;
  50.     heb=he/16;    if( (he%16)!=0 )heb++;    my=heb;
  51.  
  52.     d=obuf;
  53.     for( y=0; y<my; y++ ){
  54.         for( x=0; x<mx; x++ ){
  55.             for( l=0; l<FONTSIZE; l++ ){
  56.                 pos=HEADSIZE+(y*FONTSIZE+l)*wib+x*2;
  57. //printf("%d,",pos);
  58.                 *d++=ibuf[pos];
  59.                 *d++=ibuf[pos+1];
  60.             }
  61. //printf("\n");
  62.         }
  63.     }
  64.     
  65.     fwrite(obuf,sizeof(unsigned char),mx*my*FONTSIZE*2,ofp);
  66.     printf("%d個のユーザーフォントを作成しました\n",mx*my);
  67.     
  68. quick_exit:;
  69.     return(0);
  70. }
  71.  
  72.  
  73.